/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package projovem.relatorios.sintesesupervisao;

import java.io.Serializable;
import java.text.SimpleDateFormat;
import java.util.GregorianCalendar;
import java.util.List;
import java.util.Locale;
import javax.persistence.EntityManagerFactory;
import projovem.dao.NucleoDAO;
import projovem.relatorios.sintesesupervisao.vo.Rotina002PerfilFormadoresSinteseSupervisaoVo;
import projovem.rotinas.R002.Rotina002PerfilFormadores;

/**
 *
 * @author admprojovem
 */
public class SinteseSupervisaoRotina002PerfilFormadores implements Serializable {

    private NucleoDAO nucleoDao = new NucleoDAO();
    private Rotina002PerfilFormadoresSinteseSupervisaoVo contagem = new Rotina002PerfilFormadoresSinteseSupervisaoVo();

    public Rotina002PerfilFormadoresSinteseSupervisaoVo gerarRelatorio(String coordenacaoEscolhida, String entradaEscolhida, EntityManagerFactory emf) {

        List<Rotina002PerfilFormadores> listaRotina002PerfilFormadores = nucleoDao.obtemNucleosByCoordenacaoAndEntradaAndRotina002PerfilFormadores(coordenacaoEscolhida, entradaEscolhida, emf);
        contagem.setListaRotina002PerfilFormadores(listaRotina002PerfilFormadores);

        for (Rotina002PerfilFormadores rotina : listaRotina002PerfilFormadores) {

            if (rotina.getQ4() != null && rotina.getQ4().equals("fundamental")) {
                contagem.setQ4a(contagem.getQ4a() + 1);
                contagem.setNegativo(contagem.getNegativo() + 1);
            }
            if (rotina.getQ4() != null && rotina.getQ4().equals("medio/tecnico")) {
                contagem.setQ4b(contagem.getQ4b() + 1);
                contagem.setNegativo(contagem.getNegativo() + 1);
            }
            if (rotina.getQ4() != null && rotina.getQ4().equals("medio/magisterio")) {
                contagem.setQ4c(contagem.getQ4c() + 1);
                contagem.setNegativo(contagem.getNegativo() + 1);
            }
            if (rotina.getQ4() != null && rotina.getQ4().equals("superiorIncompleto")) {
                contagem.setQ4d(contagem.getQ4d() + 1);
                contagem.setNegativo(contagem.getNegativo() + 1);
            }
            if (rotina.getQ4() != null && rotina.getQ4().equals("superiorCompletoTecnologico")) {
                contagem.setQ4e(contagem.getQ4e() + 1);
            }
            if (rotina.getQ4() != null && rotina.getQ4().equals("superiorCompletoLicenciatura")) {
                contagem.setQ4f(contagem.getQ4f() + 1);
            }
            if (rotina.getQ4() != null && rotina.getQ4().equals("superiorCompletoBacharelado")) {
                contagem.setQ4g(contagem.getQ4g() + 1);
            }
            if (rotina.getQ4() != null && rotina.getQ4().equals("latoSensu")) {
                contagem.setQ4h(contagem.getQ4h() + 1);
            }
            if (rotina.getQ4() != null && rotina.getQ4().equals("Mestrado")) {
                contagem.setQ4i(contagem.getQ4i() + 1);
                contagem.setPositivo(contagem.getPositivo() + 1);
            }
            if (rotina.getQ4() != null && rotina.getQ4().equals("Doutorado")) {
                contagem.setQ4j(contagem.getQ4j() + 1);
                contagem.setPositivo(contagem.getPositivo() + 1);
            }

            if (rotina.getQ6() != null && rotina.getQ6().equals("NaoConcluí")) {
                contagem.setQ6a(contagem.getQ6a() + 1);
                contagem.setNegativo(contagem.getNegativo() + 1);
            }
            if (rotina.getQ6() != null && rotina.getQ6().equals("Tecnologo")) {
                contagem.setQ6b(contagem.getQ6b() + 1);
            }
            if (rotina.getQ6() != null && rotina.getQ6().equals("Educacao")) {
                contagem.setQ6c(contagem.getQ6c() + 1);
            }
            if (rotina.getQ6() != null && rotina.getQ6().equals("Letras")) {
                contagem.setQ6d(contagem.getQ6d() + 1);
            }
            if (rotina.getQ6() != null && rotina.getQ6().equals("Humanas")) {
                contagem.setQ6e(contagem.getQ6e() + 1);
            }
            if (rotina.getQ6() != null && rotina.getQ6().equals("Exatas")) {
                contagem.setQ6f(contagem.getQ6f() + 1);
            }
            if (rotina.getQ6() != null && rotina.getQ6().equals("Biologicas")) {
                contagem.setQ6g(contagem.getQ6g() + 1);
            }

            if (rotina.getQ7() != null && rotina.getQ7().equals("sim")) {
                contagem.setQ7a(contagem.getQ7a() + 1);
            }
            if (rotina.getQ7() != null && rotina.getQ7().equals("Parcialmente")) {
                contagem.setQ7b(contagem.getQ7b() + 1);
                contagem.setNegativo(contagem.getNegativo() + 1);
            }
            if (rotina.getQ7() != null && rotina.getQ7().equals("nao")) {
                contagem.setQ7c(contagem.getQ7c() + 1);
                contagem.setNegativo(contagem.getNegativo() + 1);
            }
        }

        Integer totalElementos = listaRotina002PerfilFormadores.size();

        if (contagem.getQ4a() != null && contagem.getQ4a() != 0) {
            contagem.setQ4a((contagem.getQ4a() * 100) / totalElementos);
        }
        if (contagem.getQ4b() != null && contagem.getQ4b() != 0) {
            contagem.setQ4b((contagem.getQ4b() * 100) / totalElementos);
        }
        if (contagem.getQ4c() != null && contagem.getQ4c() != 0) {
            contagem.setQ4c((contagem.getQ4c() * 100) / totalElementos);
        }
        if (contagem.getQ4d() != null && contagem.getQ4d() != 0) {
            contagem.setQ4d((contagem.getQ4d() * 100) / totalElementos);
        }
        if (contagem.getQ4e() != null && contagem.getQ4e() != 0) {
            contagem.setQ4e((contagem.getQ4e() * 100) / totalElementos);
        }
        if (contagem.getQ4f() != null && contagem.getQ4f() != 0) {
            contagem.setQ4f((contagem.getQ4f() * 100) / totalElementos);
        }
        if (contagem.getQ4g() != null && contagem.getQ4g() != 0) {
            contagem.setQ4g((contagem.getQ4g() * 100) / totalElementos);
        }
        if (contagem.getQ4h() != null && contagem.getQ4h() != 0) {
            contagem.setQ4h((contagem.getQ4h() * 100) / totalElementos);
        }
        if (contagem.getQ4i() != null && contagem.getQ4i() != 0) {
            contagem.setQ4i((contagem.getQ4i() * 100) / totalElementos);
        }
        if (contagem.getQ4j() != null && contagem.getQ4j() != 0) {
            contagem.setQ4j((contagem.getQ4j() * 100) / totalElementos);
        }

        if (contagem.getQ6a() != null && contagem.getQ6a() != 0) {
            contagem.setQ6a((contagem.getQ6a() * 100) / totalElementos);
        }
        if (contagem.getQ6b() != null && contagem.getQ6b() != 0) {
            contagem.setQ6b((contagem.getQ6b() * 100) / totalElementos);
        }
        if (contagem.getQ6c() != null && contagem.getQ6c() != 0) {
            contagem.setQ6c((contagem.getQ6c() * 100) / totalElementos);
        }
        if (contagem.getQ6d() != null && contagem.getQ6d() != 0) {
            contagem.setQ6d((contagem.getQ6d() * 100) / totalElementos);
        }
        if (contagem.getQ6e() != null && contagem.getQ6e() != 0) {
            contagem.setQ6e((contagem.getQ6e() * 100) / totalElementos);
        }
        if (contagem.getQ6f() != null && contagem.getQ6f() != 0) {
            contagem.setQ6f((contagem.getQ6f() * 100) / totalElementos);
        }
        if (contagem.getQ6g() != null && contagem.getQ6g() != 0) {
            contagem.setQ6g((contagem.getQ6g() * 100) / totalElementos);
        }

        if (contagem.getQ7a() != null && contagem.getQ7a() != 0) {
            contagem.setQ7a((contagem.getQ7a() * 100) / totalElementos);
        }
        if (contagem.getQ7b() != null && contagem.getQ7b() != 0) {
            contagem.setQ7b((contagem.getQ7b() * 100) / totalElementos);
        }
        if (contagem.getQ7c() != null && contagem.getQ7c() != 0) {
            contagem.setQ7c((contagem.getQ7c() * 100) / totalElementos);
        }
        Locale locale = new Locale("pt", "BR");
        GregorianCalendar calendar = new GregorianCalendar();
        SimpleDateFormat formatador = new SimpleDateFormat("dd' de 'MMMMM' de 'yyyy' - 'HH':'mm'h'", locale);
        contagem.setDataatual(formatador.format(calendar.getTime()));
        System.out.println(formatador.format(calendar.getTime()));
        return contagem;
    }
}
